package com.cy.study.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cy.study.entity.CourseEntity;
import com.cy.study.req.*;
import com.cy.study.res.CourseDetailRes;
import com.cy.study.res.CoursePageRes;
import com.cy.study.res.UserCourseDetailRes;
import com.cy.study.res.UserCoursePageRes;

public interface CourseService extends IService<CourseEntity> {

    /**
     * 管理员添加课程
     * @param req
     * @return
     */
    Integer addCourse(CourseAddReq req);

    /**
     * 管理员删除课程
     * @param req
     */
    void deleteCourse(CourseDeleteReq req);

    /**
     * 管理员查询课程列表
     * @param req
     * @return
     */
    Page<CoursePageRes> pageCourse(CoursePageReq req);

    /**
     * 管理员课程详情
     * @param courseId
     * @return
     */
    CourseDetailRes detailCourse(Integer courseId);

    /**
     * 用户端课程列表
     * @param req
     * @return
     */
    Page<UserCoursePageRes> userCoursePage(UserCoursePageReq req);

    /**
     * 用户端课程详情
     * @param courseId
     * @return
     */
    UserCourseDetailRes userCourseDetail(Integer courseId);
}
